(function () {
  Function.prototype.before_ = function (beforeFn) {
    const self_ = this;
    return function () {
      if (!beforeFn.apply(this, arguments)) {
        return
      }
      return self_.apply(this, arguments);;
    }
  };
  Function.prototype.after_ = function (afterFn) {
    const self_ = this;
    return function () {
      const res = self_.apply(this, arguments);
      afterFn.apply(this, arguments);
      return res;
    }
  };
})();